bitkeeper revision 1.1159.255.1 (420911c0Dpqzcuh7CS1OpkVP4miSbQ)
authoriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Tue, 8 Feb 2005 19:23:44 +0000 (19:23 +0000)
committeriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Tue, 8 Feb 2005 19:23:44 +0000 (19:23 +0000)
misc debug audit cleanups
Signed-off-by: ian.pratt@cl.cam.ac.uk
xen/arch/x86/domain.c
xen/arch/x86/mm.c

index a9c90476ab23e55df0aa668abd6acd9636e37554..b83e6060818b2f1e99a628812055040291e4d4a2 100644 (file)
@@ -783,6 +783,7 @@ void domain_relinquish_memory(struct domain *d)
         if ( pagetable_val(ed->arch.pagetable) != 0 )
             put_page_and_type(&frame_table[pagetable_val(ed->arch.pagetable) >>
                                            PAGE_SHIFT]);
+        ed->arch.pagetable = mk_pagetable(0);
     }
 
 #ifdef CONFIG_VMX
index bcf927ef509dd5e1c3cac26119e44bff0ba20f28..23d4dcedb5741a26319d18ce960232ce50e2e600 100644 (file)
@@ -2320,8 +2320,9 @@ void audit_domain(struct domain *d)
 
 
     /* PHASE 1 */
-
-    adjust(&frame_table[pagetable_val(d->exec_domain[0]->arch.pagetable)>>PAGE_SHIFT], -1, 1);
+    if ( pagetable_val(d->exec_domain[0]->arch.pagetable) )
+        adjust(&frame_table[pagetable_val(d->exec_domain[0]->arch.pagetable)
+                           >>PAGE_SHIFT], -1, 1);
 
     list_ent = d->page_list.next;
     for ( i = 0; (list_ent != &d->page_list); i++ )
@@ -2574,10 +2575,11 @@ void audit_domain(struct domain *d)
 
     spin_unlock(&d->page_alloc_lock);
 
-    adjust(&frame_table[pagetable_val(
-        d->exec_domain[0]->arch.pagetable)>>PAGE_SHIFT], 1, 1);
+    if ( pagetable_val(d->exec_domain[0]->arch.pagetable) )
+        adjust(&frame_table[pagetable_val(
+            d->exec_domain[0]->arch.pagetable)>>PAGE_SHIFT], 1, 1);
 
-    printk("Audit %d: Done. ctot=%d ttot=%d\n", d->id, ctot, ttot );
+    printk("Audit %d: Done. pages=%d ctot=%d ttot=%d\n", d->id, i, ctot, ttot );
 
     if ( d != current->domain )
         domain_unpause(d);